MongoDB তে Authentication এবং Authorization দুটি গুরুত্বপূর্ণ সিকিউরিটি ফিচার। এগুলি ডেটাবেসের মধ্যে অকারণ অ্যাক্সেস রোধ করতে এবং ডেটার সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। যখন আপনার MongoDB ডেটাবেস অ্যাপ্লিকেশন সিকিউরিটি প্রয়োজন হয়, তখন এই দুটি ফিচার গুরুত্বপূর্ণ ভূমিকা পালন করে। MongoDB তে Authentication ডেটাবেসে কোনো ব্যবহারকারীকে প্রবেশাধিকার দেওয়ার পদ্ধতি এবং Authorization ব্যবহারকারীদের নির্দিষ্ট রিসোর্সে কী ধরণের অ্যাক্সেস থাকবে তা নির্ধারণ করে।
এখানে আমরা MongoDB তে Authentication এবং Authorization কীভাবে কাজ করে এবং Java MongoDB ড্রাইভার ব্যবহার করে এগুলি কনফিগার করা যায়, তা নিয়ে আলোচনা করব।
MongoDB তে Authentication এবং Authorization
১. Authentication (প্রমাণীকরণ)
MongoDB তে Authentication হল একটি প্রক্রিয়া যার মাধ্যমে নিশ্চিত করা হয় যে ব্যবহারকারী বা অ্যাপ্লিকেশন সঠিকভাবে ডেটাবেসে প্রবেশ করতে পারবে। MongoDB ডিফল্টভাবে Authentication নিষ্ক্রিয় থাকে, তবে আপনি এটি সক্রিয় করতে পারেন। Authentication কনফিগার করার পর, MongoDB ডেটাবেসে প্রবেশ করতে হলে ব্যবহারকারীকে একটি বৈধ username এবং password প্রদান করতে হবে।
MongoDB Authentication কনফিগারেশন
MongoDB তে Authentication সক্ষম করতে আপনাকে প্রথমে MongoDB সার্ভার কনফিগার করতে হবে:
- MongoDB সার্ভারে
auth(Authentication) সক্রিয় করতেmongod.confফাইলে নিম্নলিখিত লাইন যোগ করতে হবে:
security:
authorization: "enabled"
- এরপর, MongoDB তে একটি ব্যবহারকারী তৈরি করতে হবে যেটি ডেটাবেসের জন্য Authentication করতে পারবে।
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myUserAdminPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
এটি একটি ব্যবহারকারী তৈরি করবে যার userAdminAnyDatabase রোল থাকবে, এবং সে ডেটাবেসে Authentication করতে পারবে।
Java MongoDB তে Authentication
Java MongoDB ড্রাইভার ব্যবহার করে MongoDB তে Authentication করা খুবই সহজ। নিচে একটি উদাহরণ দেওয়া হলো:
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
MongoClientURI uri = new MongoClientURI("mongodb://myUserAdmin:myUserAdminPassword@localhost:27017/admin");
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase database = mongoClient.getDatabase("myDatabase");
এখানে, MongoClientURI ব্যবহার করে MongoDB তে Authentication করা হচ্ছে যেখানে myUserAdmin এবং myUserAdminPassword এর মাধ্যমে Authentication যাচাই করা হচ্ছে।
২. Authorization (অধিকার নির্ধারণ)
MongoDB তে Authorization হল ব্যবহারকারী বা অ্যাপ্লিকেশনের রোল ভিত্তিক অনুমতি প্রদান প্রক্রিয়া। অর্থাৎ, কোন ব্যবহারকারী কিসে অ্যাক্সেস পাবে এবং কোন রিসোর্সে তার অনুমতি থাকবে, তা নির্ধারণ করে। MongoDB তে ব্যবহারকারীদের বিভিন্ন রোল (role) দেওয়া যায়, যেমন read, readWrite, dbAdmin, ইত্যাদি, যা তাদের বিভিন্ন ডেটাবেস এবং কার্যকলাপে অ্যাক্সেস দেয়।
MongoDB তে রোল ভিত্তিক Authorization
MongoDB তে কয়েকটি পূর্বনির্ধারিত রোল রয়েছে, যেমন:
read: এই রোলটি ব্যবহারকারীকে ডেটাবেসে ডেটা পড়ার অনুমতি দেয়।readWrite: ব্যবহারকারীকে ডেটাবেসে ডেটা পড়া এবং লেখা উভয়ের অনুমতি দেয়।dbAdmin: ডেটাবেসের প্রশাসনিক কাজের অনুমতি দেয়।userAdmin: ব্যবহারকারীদের তৈরি বা পরিচালনা করার অনুমতি দেয়।
একটি নতুন ব্যবহারকারী তৈরি করতে এবং তার জন্য Authorization রোল অ্যাসাইন করতে MongoDB তে নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:
use myDatabase
db.createUser({
user: "myReadWriteUser",
pwd: "password123",
roles: [ { role: "readWrite", db: "myDatabase" } ]
})
এখানে, myReadWriteUser ব্যবহারকারীকে myDatabase ডেটাবেসে readWrite রোল দেওয়া হয়েছে, যার মাধ্যমে সে ডেটা পড়তে এবং লিখতে পারবে।
Java MongoDB তে Authorization
Java MongoDB ড্রাইভার ব্যবহার করে Authorization কনফিগারেশন করা হয় নিচের মতো:
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
MongoClientURI uri = new MongoClientURI("mongodb://myReadWriteUser:password123@localhost:27017/myDatabase");
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase database = mongoClient.getDatabase("myDatabase");
এখানে, myReadWriteUser ব্যবহারকারী myDatabase ডেটাবেসে readWrite রোল নিয়ে কাজ করতে সক্ষম হবে।
MongoDB তে Authentication এবং Authorization নিরাপত্তা ব্যবস্থার জন্য অপরিহার্য। Authentication ব্যবহারকারীকে প্রমাণীকৃত করতে সাহায্য করে, এবং Authorization ব্যবহারকারীকে নির্দিষ্ট ডেটাবেস এবং রিসোর্সে অ্যাক্সেস অনুমোদন করে। Java MongoDB ড্রাইভার ব্যবহার করে MongoDB তে Authentication এবং Authorization কনফিগার করা সহজ এবং কার্যকরী। এই দুটি ফিচার ডেটাবেসের সুরক্ষা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Read more